The present invention concerns a method for correcting a digital image stored on a client device by geometric adjustment of this image onto a reference image stored on a server device connected to the client device by a communication network. It also concerns a client/server system that implements this image correction method, signals exchanged between the client and server devices, and a computer program.
During the past few years, the volume of image data has considerably increased, in particular because of the technical changes in network infrastructures and an increase in the number of sensors.
The commercial exploitation of these data has led, firstly, to the direct sale of products such as for example satellite or aerial images that have been orthorectified from ground elevation models.
For this purpose, client/server applications of the centralised type have been developed. These applications consist mainly of centralising the execution of the image correction methods on the server device. The user then has to send a request, via a client device and to this server device, transferring to it the whole image to be corrected via a communication network. The image, once corrected, is then transferred to the client device via the communication network.
The present invention is limited to the correction of a digital image by geometric adjustment of this image onto a reference image.
There exist many ways for correcting a digital image by geometric adjustment of this image onto a reference image.
One of them, which is given here only by way of example, is orthorectification. This type of correction is normally applied to a satellite or aerial image for correcting the spatial distortions or inaccuracies that are due notably to:                the angles at which these images are taken and the slopes of the relief, which cause pixel positioning errors,        imprecise knowledge of the location of the imaging system.        
Orthorectification of an image is a transformation of this image where the result is an image, normally referred to as orthoimage, that is corrected geometrically so that all its points correspond to points on the terrestrial surface that would have been acquired by a sensor located at infinity, and at their vertical position. Because an orthoimage therefore has the geometry of a flat map, thematic data resulting from this orthoimage, such as spatial information, can then be extracted more precisely compared with information directly resulting from a raw satellite or aerial image.
Orthorectification of a satellite or aerial image can be implemented by determining rational polynomial coefficients (RPCs). These polynomials establish a modelling of the relationship between the positions of the pixels of the image to be corrected and the positions of points on the terrestrial surface the three spatial coordinates of which are perfectly known. These points on the terrestrial surface are normally referred to as ground control points (GCPs) and are stored by the server in association with the reference image.
One example of rational polynomials is given by equation (1):
                    {                                                                              r                  n                                =                                                                            P                      1                                        ⁡                                          (                                                                        x                          n                                                ,                                                  y                          n                                                ,                                                  z                          n                                                                    )                                                                                                  P                      2                                        ⁡                                          (                                                                        x                          n                                                ,                                                  y                          n                                                ,                                                  z                          n                                                                    )                                                                                                                                                                c                  n                                =                                                                            P                      3                                        ⁡                                          (                                                                        x                          n                                                ,                                                  y                          n                                                ,                                                  z                          n                                                                    )                                                                                                  P                      4                                        ⁡                                          (                                                                        x                          n                                                ,                                                  y                          n                                                ,                                                  z                          n                                                                    )                                                                                                                              (        1        )            with rn and cn the positions of the row and respectively the column of a pixel of the image to be corrected, (xn, yn, zn) the three-dimensional coordinates of a position of a point on the terrestrial surface, P1 and P2 polynomials corresponding to the numerator and denominator of a first rational polynomial and P3 and P4 polynomials corresponding to the numerator and denominator of a second rational polynomial. It is usual for the first rational polynomial to be used for calculating the positions of the rows of the pixels and the second to be used for calculating the positions of the columns of these pixels.
Each polynomial P of a numerator or denominator is for example given by:
                              P          ⁡                      (                          x              ,              y              ,              z                        )                          =                              ∑                          i              =              0                                      m              1                                ⁢                                    ∑                              j                =                0                                            m                2                                      ⁢                                          ∑                                  k                  =                  0                                                  m                  3                                            ⁢                                                a                  ijk                                ⁢                                  x                  i                                ⁢                                  y                  j                                ⁢                                  z                  k                                                                                        (        2        )            with aijk the coefficients of the rational polynomials.
These coefficients of the rational polynomials are calculated from an image to be corrected and a reference image. In practice, a reference image is usually an image previously taken that has undergone processing operations such as an orthorectification or on which any cloud has been removed and/or any part that represents an area of water has been identified.
Ground control points are then extracted from this reference image and the coefficients of the two rational polynomials are calculated by solving a system formed from equation (2), that is to say from these control points and the image to be corrected.
Once the coefficients of the rational polynomials have been calculated, the server device applies the polynomial transformation defined by equation (1) in order to determine the corrected position of each pixel of the image. The orthoimage is then obtained by recovering the altitude of the pixels of this orthoimage from a ground elevation model.
A radiometric correction may also be applied by the server device to the orthoimage in order to correct colorimetric contrast errors. The orthoimage is then sent to the client device.
Orthorectification of a satellite or aerial image is only one example of correction. This is because a user may expect a geographical positioning of his image on the terrestrial globe only, meaning positioning in terms of latitude and longitude of his image on the corresponding point on the terrestrial surface, without wanting an orthoimage. However, in this case, the whole image to be corrected must also be transferred to the server device and the corrected image must also be sent by the server device to the client device.
This type of centralised application cannot be used for a large-scale deployment since it requires a large bandwidth for transferring the images to be corrected and those that have been corrected between the server device and the client device. For example, the time taken for obtaining a corrected satellite and/or aerial image is very often around several hours, which is unacceptable for a wide deployment of this type of service. Reducing the quality of the images to be corrected is not a solution that can be foreseen for reducing this waiting time since the degradation of the image to be corrected greatly interferes with the parameters of the correction to be applied to this image such as for example the coefficients of the rational polynomials. The result is then a quality of the corrected image which does not, for the majority of the time, correspond to user's expectations.
Moreover, on the server side, the resources used for correcting an image, for instance satellite or aerial, are quite sizable and these resources increase according to the number of simultaneous accesses to the image correction service. This cost related to these resources will have an influence on the access price to this service leading this price to increase exponentially. This runs against the willingness of the service providers to deploy this service to the general public.